/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package recursos;

import CapaDatos.Articulo_POJO;
import java.util.*;
import CapaLogica.*;
/**
 *
 * @author Cannibal-Slayer
 */
public class interfaz_com {
    
    // tipo 1
    public String crear_usuario(String nombre, String email, String usuario, String password){
        Usuario u = new Usuario();
        u.setNombre(nombre);
        u.setEmail(email);
        u.setUsuario(usuario);
        u.setPassword(password);
        
        Respuesta r = new Respuesta();
        r.setTipoMensaje(1);
        r.setObjetoRespuesta(u);
        
        Logica l = new Logica();
        Respuesta data = l.realizarPedido(r);
        return data.getMensaje();
    }
    
     public String crear_articulo(String nombre, String desc,String imagen,int categoria, float precio,String subasta,int id_usuario){
        Subasta s = new Subasta();
        Articulo a = new Articulo(nombre,desc,imagen,categoria,precio);
     
        boolean sub = Boolean.parseBoolean(subasta);
        a.setSubasta(sub);
        a.setId_usuario(id_usuario);
        s.setArticulo(a);
        
        Respuesta r = new Respuesta();
       
        r.setTipoMensaje(41);
        r.setObjetoRespuesta(s);
        
        Logica l = new Logica();
        Respuesta data = l.realizarPedido(r);
        return data.getMensaje();
    }
    
    // tipo 31
    public LinkedList<Categoria> pedir_categorias(){
        Respuesta r = new Respuesta();
        r.setTipoMensaje(31);
        
        Logica l = new Logica();
        Respuesta data = l.realizarPedido(r);
        LinkedList lista = (LinkedList) data.getObjetoRespuesta();        
        return lista;
    }
    
    // tipo 32 aqui pido todos los articulos de una determinada categoria
     public LinkedList<articulo_carrito> enviar_categoria(int tipo){
       Categoria c = new Categoria(tipo, "");
       Respuesta r = new Respuesta();
       r.setTipoMensaje(32);
       r.setObjetoRespuesta(c);
       
       Logica l = new Logica ();
       Respuesta data = l.realizarPedido(r);
       return parsear((LinkedList) data.getObjetoRespuesta());
       
   }

    
    public LinkedList<articulo_carrito> parsear(LinkedList<Articulo_POJO> resultado){
        LinkedList<articulo_carrito> parseado = new LinkedList<articulo_carrito>();
        for(int x = 0; x < resultado.size(); x++){
            Articulo_POJO elemento = (Articulo_POJO) resultado.get(x);
            articulo_carrito cambiado = new articulo_carrito(elemento.getNombre(), elemento.getDescripcion(), elemento.getImagen(), elemento.getIdCategoria(), elemento.getPrecio(), false);
            cambiado.articuloCodigo = elemento.getIdArticulo();
            parseado.add(cambiado);
        }
        
        parseado.size();
        System.out.println("parar");
        return parseado;
    }
     public int ValidarLogin(String usuario, String password){
        Usuario u = new Usuario();
        u.setNombre(usuario);
        u.setPassword(password);

        Respuesta r = new Respuesta();
        r.setTipoMensaje(2);
        r.setObjetoRespuesta(u);

        Logica l = new Logica();
        l.realizarPedido(r);

        return u.getId();

        
        
    }
       
        
       public LinkedList<Articulo> deparcear(LinkedList<articulo_carrito> datos) {
        LinkedList<Articulo> deparceado = new LinkedList<Articulo>();
        for (int x = 0; x < datos.size(); x++) {
            articulo_carrito articulo = datos.get(x);
            Articulo cambiado = new Articulo(articulo.articuloNombre, articulo.articuloDescripcion, articulo.articuloimagen, articulo.articuloCategoria, articulo.articuloPrecio);
            cambiado.setId_articulo(articulo.articuloCodigo);
        }
        return deparceado;
    }
    
    
    public void comprar(int idUsusario, LinkedList<Articulo> datos, double total, int tipo_pago, int region){
        Compra comp = new Compra();
        comp.setIdComprador(region);
        comp.setListaArticulos(datos);
        comp.setPrecioShipping(10.00);
        comp.setIdRegionShipping(idUsusario);
        
        Pago pag = new Pago();
        pag.setTotal(total);
        pag.setTipoPago(tipo_pago);        
        comp.setPago(pag);
        
        Respuesta r = new Respuesta();
        r.setTipoMensaje(5);
        r.setObjetoRespuesta(comp);
        
        Logica l = new Logica();
        l.realizarPedido(r);     
        
    
    }
    public LinkedList<Region> pedir_region() {
       Respuesta r = new Respuesta();
       r.setTipoMensaje(8);

       Logica l = new Logica();
       Respuesta data = l.realizarPedido(r);
       LinkedList lista = (LinkedList) data.getObjetoRespuesta();
       return lista;
   }
}
